package com.fancy;

/**
 * @author chaigq
 * @version 1.0
 * @date 2021/5/20 11:07 下午
 */
public class VirtualOldGeneration {

    public static void main(String[] args) {
        // 会在eden区中创建3个 2M 的对象
        byte[] array1 = new byte[2 * 1024 * 1024];
        array1 = new byte[2 * 1024 * 1024];
        array1 = new byte[2 * 1024 * 1024];

        // 会在eden区中创建一个128k的对象，array = null 同时产生128k的垃圾
        byte[] array2 = new byte[128 * 1024];
        array2 = null;

        // 当创建 array3 时，Eden区内存不足，会产生Young GC
        byte[] array3 = new byte[2 * 1024 * 1024];

        // ParNew: 7819K->427K(9216K), 0.0020884 secs 触发GC，清除2个2M的对象和128k的对象，剩余一个2M对象和一个未知垃圾
        // par new generation   total 9216K, used 2641K ：存放的是array3对象
        // eden space 8192K,  27% used  存放array3
        // from space 1024K,  41% used  存放未知的数据
        // Metaspace  used 3039K, capacity 4496K, committed 4864K 存放array1对象

    }
}
